package com.ttbj.ytpay.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ttbj.api.dto.Page;
import com.ttbj.api.dto.YtPayDto;


public interface YtPayMapper {
	
	/**
	 * 分页条件查询支付详情列表
	 * @param startDateTime 支付时间的开始时间
	 * @param endDateTime 支付时间的结束时间
	 * @param merOrderNum 商户订单号
	 * @param page 分页页码
	 * @return
	 */
	public List<YtPayDto> queryYtPayInfoByPage(@Param("startDateTime") String startDateTime, @Param("endDateTime") String endDateTime,
											   @Param("merOrderNum") String merOrderNum, @Param("orderId") String orderId, @Param("page") Page page);
	
	/**
	 * 分页条件查询支付详情数量
	 * @param startDateTime 支付时间的开始时间
	 * @param endDateTime 支付时间的结束时间
	 * @param merOrderNum 商户订单号
	 * @return 
	 */
	public Integer queryYtPayInfoByPageCount(@Param("startDateTime") String startDateTime, @Param("endDateTime") String endDateTime,
												@Param("merOrderNum") String merOrderNum, @Param("orderId") String orderId);
	
	/**
	 * 增加支付详情
	 * @param ytPayDto 支付详情类
	 * @return
	 */
	public Integer insertPaymentRecord(YtPayDto ytPayDto);
	
	/**
	 * 通过商户订单号（merOrderNum）查询支付网关订单号（orderId）
	 * @param merOrderNum 商户订单号
	 * @return 支付网关订单号（orderId）
	 */
	public String queryOrderIdByMerOrderNum(String merOrderNum);
	
	/**
	 * 根据商户订单号（merOrderNum）更新返回码（0000 为成功，9999 为失败，8888 为未支付）
	 * @param respCode 返回码
	 * @param merOrderNum 商户订单号
	 * @return
	 */
	public Integer updateRespCodeByMerOrderNum(@Param("respCode") String respCode, @Param("merOrderNum") String merOrderNum);
	
	/**
	 * 查询当前时间所在的当天内交易金额
	 * @return
	 */
	public Integer queryTranAmtSumByNowTime();
	
	/**
	 * 通过merOrderNum查询支付时间
	 * @param merOrderNum：商户订单号
	 * @return
	 */
	public String queryPaymentTimeByMerOrderNum(String merOrderNum);
}
